package com.zdkj.subway.check.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.format.annotation.DateTimeFormat;

import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;
/**
 * 2-2-7、TVM票款差异协查-现金层级差异信息 sw_au_tvm_cash_amount_hierarchy_difference
 */
@Data
public class SwAuTvmCashAmountHierarchyDifference {

    /**
     * 唯一标识
     */
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    Integer id;
    /**
     *  TVM票款差异审核ID
     */
    Integer relationSourceId;
    /**
     * 线路编码
     */
    String lineCode;
    /**
     * 车站编码
     */
    String stationCode;
    /**
     * 收入日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    Date settleTime;
    /**
     * TVM编号
     */
    String tvmOrder;
    /**
     * 类型
     */
    String type;
    /**
     * 结账单据充值金额
     */
    BigDecimal depositAmount;
    /**
     * 结账单据售卖金额
     */
    BigDecimal saleAmount;
    /**
     * 结账单据故障退款金额
     */
    BigDecimal errorRefundAmount;
    /**
     * 对比类型
     */
    String compareType;
    /**
     * 协查前充值金额
     */
    BigDecimal beDepositAmount;
    /**
     * 协查前售卖金额（分）
     */
    BigDecimal beSaleAmount;
    /**
     * 协查前故障退款金额（分）
     */
    BigDecimal beErrorRefundAmount;
    /**
     * 协查状态
     */
    String assistStatus;
    /**
     * 替换状态1：已替换 0：未替换
     */
    String replaceStatus;
    /**
     * 替换状态为已替换时，存储的替换来源数据Id
     */
    Integer replaceSourceId;

    /**
     * 下发协查时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    Date sendAssistTime;
    /**
     *
     */
    String dataType;
    /**
     * 机电专业回馈差异原因（字典）
     */
    String jdReplyReason;
    /**
     * 机电专业回馈详情
     */
    String jdReplyDetail;

    /**
     * 机电回馈时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    Date jdReplyTime;
    /**
     * 清分专业回馈差异原因（字典）
     */
    String qfReplyReason;
    /**
     * 清分专业回馈状态
     */
    String qfReplyStatus;
    /**
     * 清分专业回馈详情
     */
    String qfReplyDetail;

    /**
     * 清分回馈时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    Date qfReplyTime;
    /**
     * 创建人ID
     */
    Integer creatorId;

    /**
     * 创建时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    Date createTime;

    /**
     * 回馈充值金额（如对比类型为3，为SC金额，否则为LC金额）
     */
    BigDecimal replyRechargeMoney;
    /**
     * 回馈售卖金额（如对比类型为3，为SC金额，否则为LC金额）
     */
    BigDecimal replySaleMoney;
    /**
     * 回馈故障退款金额（如对比类型为3，为SC金额，否则为LC金额）
     */
    BigDecimal replyErrorReturnMoney;

    /**
     * 回馈对比充值金额（如对比类型为4，ACC金额）
     */
    BigDecimal replyComparativeRechargeMoney;
    /**
     * 回馈售卖金额（如对比类型为4，ACC金额）
     */
    BigDecimal replyComparativeSaleMoney;
    /**
     * 回馈故障退款金额（如对比类型为4，ACC金额）
     */
    BigDecimal replyComparativeErrorReturnMoney;

    String replyStatus;

    @TableField(exist = false)
    LocalDateTime jdReplyDateTime;
    @TableField(exist = false)
    LocalDateTime sendAssistDateTime;
    @TableField(exist = false)
    LocalDate settleDate;

    //2021-11-22
    /**
     * 下发人工号
     */
    String sendPersonCode;
    /**
     * 下发人名称
     */
    String sendPersonName;

}
